<template>
    <div>子组件</div>
</template>
    
<script setup lang="ts">
import { defineExpose,defineProps,defineEmits,ref } from 'vue' // defineExpose/defineEmits/defineProps默认是不用引入的

const data = ref('我是要修改的数据')
const dialogShow = (data:string) => {
    console.log(data)
}
// 为了在声明 props 和 emits 选项时获得完整的类型推导支持
// 声明写法一:
// const props = defineProps({
//   foo: String
// })
// const emit = defineEmits(['bb'])
//声明写法二:ts
interface T{
    (e:'bb',val:string,val2:number):void
    (e:'bbfnc'):string
}

const props = defineProps<{foo:string,foo1:string}>()
const emit = defineEmits<T>()

//使用
emit('bb','97654321',9999)
console.log(emit('bbfnc'))
console.log(props.foo,props.foo1)

//暴露给父组件的属性
defineExpose({
    dialogShow,
    data
})
</script>
<style scoped>

</style>
